// Generated .IDL file (by the OLE/COM Object Viewer)
// 
// typelib filename: devedit.pkg
// Forward declare all types defined in this typelib
interface IGenericDocument;
interface IGenericWindow;
interface IGenericProject;
interface ITextDocument;
interface ITextSelection;
interface ITextWindow;
dispinterface IDispTextDocument;
dispinterface IDispTextSelection;
dispinterface IDispTextWindow;
interface ITextEditor;
dispinterface IDispTextEditor;

[
  uuid(2A6DF200-8240-11CF-AB59-00AA00C091A1),
  version(1.0),
  helpstring("Visual Studio 97 Text Editor")
]
library DSTextEditor
{
    // TLib : OLE Automation : {00020430-0000-0000-C000-000000000046}
    importlib("STDOLE2.TLB");

    typedef [helpstring("Movement options for several TextSelection navigation methods.")]
    enum {
        dsMove = 0,
        dsExtend = 1
    } DsMovementOptions;

    typedef [helpstring("Options for the StartOfLine method.")]
    enum {
        dsFirstColumn = 0,
        dsFirstText = 1
    } DsStartOfLineOptions;

    typedef [helpstring("Options for the ChangeCase method.")]
    enum {
        dsLowercase = 1,
        dsUppercase = 2,
        dsCapitalize = 3
    } DsCaseOptions;

    typedef [helpstring("Options for the DeleteWhitespace method.")]
    enum {
        dsHorizontal = 0,
        dsVertical = 1
    } DsWhitespaceOptions;

    typedef [helpstring("Options for the GoToLine method.")]
    enum {
        dsLastLine = -1
    } DsGoToLineOptions;

    typedef [helpstring("Options for the Emulation property.")]
    enum {
        dsDevStudio = 0,
        dsVC2 = 1,
        dsBrief = 2,
        dsEpsilon = 3,
        dsCustom = 4
    } DsEmulation;

    typedef [helpstring("Options for several text search methods.")]
    enum {
        dsMatchWord = 2,
        dsMatchCase = 4,
        dsMatchNoRegExp = 0,
        dsMatchRegExp = 8,
        dsMatchRegExpB = 16,
        dsMatchRegExpE = 32,
        dsMatchRegExpCur = 64,
        dsMatchForward = 0,
        dsMatchBackward = 128,
        dsMatchFromStart = 256
    } DsTextSearchOptions;

    typedef [helpstring("Represents the possible states of a window.")]
    enum {
        dsWindowStateMaximized = 1,
        dsWindowStateMinimized = 2,
        dsWindowStateNormal = 3
    } DsWindowState;

    typedef [helpstring("Passed to Windows.Arrange to arrange the windows.")]
    enum {
        dsMinimize = 1,
        dsTileHorizontal = 2,
        dsTileVertical = 3,
        dsCascade = 4
    } DsArrangeStyle;

    typedef [helpstring("Represents the button type.")]
    enum {
        dsGlyph = 1,
        dsText = 2
    } DsButtonType;

    typedef [helpstring("Indicates what to do with changes when closing a file.")]
    enum {
        dsSaveChangesYes = 1,
        dsSaveChangesNo = 2,
        dsSaveChangesPrompt = 3
    } DsSaveChanges;

    typedef [helpstring("Represents the result of a save operation.")]
    enum {
        dsSaveSucceeded = 1,
        dsSaveCanceled = 2
    } DsSaveStatus;

    [
      odl,
      uuid(FB7FDAE1-89B8-11CF-9BE8-00A0C90A632C),
      helpstring("Represents an open document."),
      hidden,
      dual,
      oleautomation
    ]
    interface IGenericDocument : IDispatch {
        [id(00000000), propget, helpstring("Returns the name of the document.")]
        HRESULT _stdcall Name([out, retval] BSTR* pName);
        [id(0x00000001), propget, helpstring("Returns the name of the document including the path.")]
        HRESULT _stdcall FullName([out, retval] BSTR* pName);
        [id(0x00000002), propget, helpstring("Returns the Developer Studio Application object")]
        HRESULT _stdcall Application([out, retval] IDispatch** ppApplication);
        [id(0x00000003), propget, helpstring("Returns the Developer Studio Application object")]
        HRESULT _stdcall Parent([out, retval] IDispatch** ppParent);
        [id(0x00000004), propget, helpstring("Returns the pathname of the document. Never has a trailing backslash.")]
        HRESULT _stdcall Path([out, retval] BSTR* pPath);
        [id(0x00000005), propget, helpstring("Returns False if document has changed since it was last saved.")]
        HRESULT _stdcall Saved([out, retval] VARIANT_BOOL* pSaved);
        [id(0x00000006), propget, helpstring("Returns the active window for this document.")]
        HRESULT _stdcall ActiveWindow([out, retval] IDispatch** ppWindow);
        [id(0x00000007), propget, helpstring("Returns/sets whether a document can be changed inside Developer Studio.")]
        HRESULT _stdcall ReadOnly([out, retval] VARIANT_BOOL* pReadOnly);
        [id(0x00000007), propput, helpstring("Returns/sets whether a document can be changed inside Developer Studio.")]
        HRESULT _stdcall ReadOnly([in] VARIANT_BOOL pReadOnly);
        [id(0x00000008), propget, helpstring("Returns a string describing the type of the document. Most documents return 'Generic'.")]
        HRESULT _stdcall Type([out, retval] BSTR* pType);
        [id(0x00000009), propget, helpstring("Returns a Windows collection containing the windows associated with this document.")]
        HRESULT _stdcall Windows([out, retval] IDispatch** ppWindows);
        [id(0x0000000a), propput, helpstring("Returns/sets the active state of the window.")]
        HRESULT _stdcall Active([in] VARIANT_BOOL pbActive);
        [id(0x0000000a), propget, helpstring("Returns/sets the active state of the window.")]
        HRESULT _stdcall Active([out, retval] VARIANT_BOOL* pbActive);
        [id(0x0000000b), helpstring("Creates a new window for this document.")]
        HRESULT _stdcall NewWindow([out, retval] IDispatch** ppWindow);
        [id(0x0000000c), helpstring("Saves the document to disk.")]
        HRESULT _stdcall Save(
                        [in, optional] VARIANT vFilename, 
                        [in, optional] VARIANT vBoolPrompt, 
                        [out, retval] DsSaveStatus* pSaved);
        [id(0x0000000d), helpstring("Reverses previous editing actions. Has no effect on 'Generic' documents.")]
        HRESULT _stdcall Undo([out, retval] VARIANT_BOOL* pSuccess);
        [id(0x0000000e), helpstring("Reapplies previous editing actions. Has no effect on 'Generic' documents.")]
        HRESULT _stdcall Redo([out, retval] VARIANT_BOOL* pSuccess);
        [id(0x0000000f), helpstring("Sends the document to the current printer. Has no effect on 'Generic' documents.")]
        HRESULT _stdcall PrintOut([out, retval] VARIANT_BOOL* pSuccess);
        [id(0x00000010), helpstring("Closes the document.")]
        HRESULT _stdcall Close(
                        [in, optional] VARIANT vSaveChanges, 
                        [out, retval] DsSaveStatus* pSaved);
        [id(0x00000032), restricted, hidden]
        HRESULT _stdcall Reserved1();
        [id(0x00000033), restricted, hidden]
        HRESULT _stdcall Reserved2();
        [id(0x00000034), restricted, hidden]
        HRESULT _stdcall Reserved3();
        [id(0x00000035), restricted, hidden]
        HRESULT _stdcall Reserved4();
        [id(0x00000036), restricted, hidden]
        HRESULT _stdcall Reserved5();
        [id(0x00000037), restricted, hidden]
        HRESULT _stdcall Reserved6();
        [id(0x00000038), restricted, hidden]
        HRESULT _stdcall Reserved7();
        [id(0x00000039), restricted, hidden]
        HRESULT _stdcall Reserved8();
        [id(0x0000003a), restricted, hidden]
        HRESULT _stdcall Reserved9();
        [id(0x0000003b), restricted, hidden]
        HRESULT _stdcall Reserved10();
    };

    [
      odl,
      uuid(FD20FC80-A9D2-11CF-9C13-00A0C90A632C),
      helpstring("Represents the MDI client windows."),
      hidden,
      dual,
      oleautomation
    ]
    interface IGenericWindow : IDispatch {
        [id(00000000), propget, helpstring("Returns the caption of a window.")]
        HRESULT _stdcall Caption([out, retval] BSTR* pbstrCaption);
        [id(0x00000001), propget, helpstring("Returns a string describing the type of the window. Most windows return 'Generic'.")]
        HRESULT _stdcall Type([out, retval] BSTR* pbstrCaption);
        [id(0x00000002), propput, helpstring("Returns/sets the active state of the window.")]
        HRESULT _stdcall Active([in] VARIANT_BOOL pbActive);
        [id(0x00000002), propget, helpstring("Returns/sets the active state of the window.")]
        HRESULT _stdcall Active([out, retval] VARIANT_BOOL* pbActive);
        [id(0x00000003), propput, helpstring("Returns/sets the coordinate for the left edge of the window.")]
        HRESULT _stdcall Left([in] long plVal);
        [id(0x00000003), propget, helpstring("Returns/sets the coordinate for the left edge of the window.")]
        HRESULT _stdcall Left([out, retval] long* plVal);
        [id(0x00000004), propput, helpstring("Returns/sets the coordinate for the top of the window.")]
        HRESULT _stdcall Top([in] long plVal);
        [id(0x00000004), propget, helpstring("Returns/sets the coordinate for the top of the window.")]
        HRESULT _stdcall Top([out, retval] long* plVal);
        [id(0x00000005), propput, helpstring("Returns/sets the height of the window.")]
        HRESULT _stdcall Height([in] long plVal);
        [id(0x00000005), propget, helpstring("Returns/sets the height of the window.")]
        HRESULT _stdcall Height([out, retval] long* plVal);
        [id(0x00000006), propput, helpstring("Returns/sets the width of the window.")]
        HRESULT _stdcall Width([in] long plVal);
        [id(0x00000006), propget, helpstring("Returns/sets the width of the window.")]
        HRESULT _stdcall Width([out, retval] long* plVal);
        [id(0x00000007), propget, helpstring("Returns the one-based ordinal of a window in the Windows collection.")]
        HRESULT _stdcall Index([out, retval] long* plVal);
        [id(0x00000008), propget, helpstring("Returns the next window in the tab sequence.")]
        HRESULT _stdcall Next([out, retval] IDispatch** ppDispatch);
        [id(0x00000009), propget, helpstring("Returns the previous window in the shift-tab sequence.")]
        HRESULT _stdcall Previous([out, retval] IDispatch** ppDispatch);
        [id(0x0000000a), propput, helpstring("Returns the state of the window or maximize, minimize, or restore the window.")]
        HRESULT _stdcall WindowState([in] DsWindowState plVal);
        [id(0x0000000a), propget, helpstring("Returns the state of the window or maximize, minimize, or restore the window.")]
        HRESULT _stdcall WindowState([out, retval] DsWindowState* plVal);
        [id(0x0000000b), propget, helpstring("Returns the Developer Studio Application object")]
        HRESULT _stdcall Application([out, retval] IDispatch** ppDispatch);
        [id(0x0000000c), propget, helpstring("Returns the document associated with this window.")]
        HRESULT _stdcall Parent([out, retval] IDispatch** ppDispatch);
        [id(0x0000000d), helpstring("Close the window.")]
        HRESULT _stdcall Close(
                        [in] VARIANT boolSaveChanges, 
                        [out, retval] DsSaveStatus* pSaved);
        [id(0x00000032), restricted, hidden]
        HRESULT _stdcall Reserved1();
        [id(0x00000033), restricted, hidden]
        HRESULT _stdcall Reserved2();
        [id(0x00000034), restricted, hidden]
        HRESULT _stdcall Reserved3();
        [id(0x00000035), restricted, hidden]
        HRESULT _stdcall Reserved4();
        [id(0x00000036), restricted, hidden]
        HRESULT _stdcall Reserved5();
        [id(0x00000037), restricted, hidden]
        HRESULT _stdcall Reserved6();
        [id(0x00000038), restricted, hidden]
        HRESULT _stdcall Reserved7();
        [id(0x00000039), restricted, hidden]
        HRESULT _stdcall Reserved8();
        [id(0x0000003a), restricted, hidden]
        HRESULT _stdcall Reserved9();
        [id(0x0000003b), restricted, hidden]
        HRESULT _stdcall Reserved10();
    };

    [
      odl,
      uuid(8CA5A960-FC7D-11CF-927D-00A0C9138C45),
      helpstring("Represents a group of files which can include configurations."),
      hidden,
      dual,
      oleautomation
    ]
    interface IGenericProject : IDispatch {
        [id(00000000), propget, helpstring("Returns the name of the project.")]
        HRESULT _stdcall Name([out, retval] BSTR* Name);
        [id(0x00000001), propget, helpstring("Returns the name of the project including its path.")]
        HRESULT _stdcall FullName([out, retval] BSTR* Name);
        [id(0x00000002), propget, helpstring("Returns the Developer Studio Application object")]
        HRESULT _stdcall Application([out, retval] IDispatch** Application);
        [id(0x00000003), propget, helpstring("Returns the Developer Studio Application object")]
        HRESULT _stdcall Parent([out, retval] IDispatch** Parent);
        [id(0x00000004), propget, helpstring("Returns a string representing the type of the project.")]
        HRESULT _stdcall Type([out, retval] BSTR* pType);
        [id(0x00000032), restricted, hidden]
        HRESULT _stdcall Reserved1();
        [id(0x00000033), restricted, hidden]
        HRESULT _stdcall Reserved2();
        [id(0x00000034), restricted, hidden]
        HRESULT _stdcall Reserved3();
        [id(0x00000035), restricted, hidden]
        HRESULT _stdcall Reserved4();
        [id(0x00000036), restricted, hidden]
        HRESULT _stdcall Reserved5();
        [id(0x00000037), restricted, hidden]
        HRESULT _stdcall Reserved6();
        [id(0x00000038), restricted, hidden]
        HRESULT _stdcall Reserved7();
        [id(0x00000039), restricted, hidden]
        HRESULT _stdcall Reserved8();
        [id(0x0000003a), restricted, hidden]
        HRESULT _stdcall Reserved9();
        [id(0x0000003b), restricted, hidden]
        HRESULT _stdcall Reserved10();
    };

    // NOTE: This module has no entry points and thus is invalid.
    //       There is no way to extract the dllname of a module
    //       with no entry points
    // 
    [
      dllname("<invalid typelib>"),
      helpstring("General string constants for use with the text editor object model.")
    ]
    module DsEditorStringConstants {
        [entry(00000000), helpstring("Creates a text document with the Add method of a Documents collection.")] const LPSTR dsTextDocument = "Text";
    };

    // NOTE: This module has no entry points and thus is invalid.
    //       There is no way to extract the dllname of a module
    //       with no entry points
    // 
    [
      dllname("<invalid typelib>"),
      helpstring("Language values for the Language property of the TextDocument object.")
    ]
    module DsLanguageSettings {
        [entry(00000000), helpstring("Indicates a VBS document.")] const LPSTR dsVBSMacro = "VBS Macro";
        [entry(0x00000001), helpstring("Indicates a Java document.")] const LPSTR dsJava = "Java";
        [entry(0x00000002), helpstring("Indicates a C or C++ document.")] const LPSTR dsCPP = "C/C++";
        [entry(0x00000003), helpstring("Indicates an ODL or IDL document.")] const LPSTR dsIDL = "ODL/IDL";
        [entry(0x00000004), helpstring("Indicates that a text document is a HTML (IE 3.0) document.")] const LPSTR dsHTML_IE3 = "HTML - IE 3.0";
        [entry(0x00000005), helpstring("Indicates that a text document is a HTML (RFC 1866) document.")] const LPSTR dsHTML_RFC1866 = "HTML 2.0 (RFC 1866)";
        [entry(0x00000006), helpstring("Indicates that a text document is a Fortran fixed-format document.")] const LPSTR dsFortran_Fixed = "Fortran Fixed";
        [entry(0x00000007), helpstring("Indicates that a text document is a Fortran free-format document.")] const LPSTR dsFortran_Free = "Fortran Free";
    };

    [
      odl,
      uuid(2A6DF201-8240-11CF-AB59-00AA00C091A1),
      helpstring("Represents an open text file."),
      hidden,
      dual,
      oleautomation
    ]
    interface ITextDocument : IGenericDocument {
        [id(0x00000064), propget, helpstring("Gets the TextSelection object for the active view.")]
        HRESULT _stdcall Selection([out, retval] IDispatch** ppSelection);
        [id(0x00000065), propput, helpstring("Gets or sets the number of columns in one indent.")]
        HRESULT _stdcall IndentSize([in] long pSize);
        [id(0x00000065), propget, helpstring("Gets or sets the number of columns in one indent.")]
        HRESULT _stdcall IndentSize([out, retval] long* pSize);
        [id(0x00000066), propput, helpstring("Gets or sets the number of columns in a tab character.")]
        HRESULT _stdcall TabSize([in] long pSize);
        [id(0x00000066), propget, helpstring("Gets or sets the number of columns in a tab character.")]
        HRESULT _stdcall TabSize([out, retval] long* pSize);
        [id(0x00000067), propput, helpstring("Gets or sets the programming language assumed for a document.")]
        HRESULT _stdcall Language([in] BSTR pLanguage);
        [id(0x00000067), propget, helpstring("Gets or sets the programming language assumed for a document.")]
        HRESULT _stdcall Language([out, retval] BSTR* pLanguage);
        [id(0x0000006e), helpstring("Replaces all instances of one string or regular expression with another.")]
        HRESULT _stdcall ReplaceText(
                        [in] BSTR FindText, 
                        [in] BSTR ReplaceText, 
                        [in, optional] VARIANT Flags, 
                        [out, retval] VARIANT_BOOL* pbRetVal);
        [id(0x0000006f), helpstring("Removes all unnamed bookmarks in a document.")]
        HRESULT _stdcall ClearBookmarks();
        [id(0x00000070), helpstring("Marks lines containing the specified text.")]
        HRESULT _stdcall MarkText(
                        [in] BSTR FindText, 
                        [in, optional] VARIANT Flags, 
                        [out, retval] VARIANT_BOOL* pbRetVal);
    };

    [
      odl,
      uuid(05092F20-833F-11CF-AB59-00AA00C091A1),
      helpstring("Represents a selection in a text editor window."),
      hidden,
      dual,
      oleautomation
    ]
    interface ITextSelection : IDispatch {
        [id(00000000), propput, helpstring("Represents the currently selected text.")]
        HRESULT _stdcall Text([in] BSTR pText);
        [id(00000000), propget, helpstring("Represents the currently selected text.")]
        HRESULT _stdcall Text([out, retval] BSTR* pText);
        [id(0x00000002), propget, helpstring("Returns the Developer Studio Application object")]
        HRESULT _stdcall Application([out, retval] IDispatch** ppApp);
        [id(0x00000003), propget, helpstring("Gets the line where the insertion point is located.")]
        HRESULT _stdcall CurrentLine([out, retval] long* plLine);
        [id(0x00000004), propget, helpstring("Gets the column where the insertion point is located.")]
        HRESULT _stdcall CurrentColumn([out, retval] long* plCol);
        [id(0x00000005), propget, helpstring("Gets the document object for this selection.")]
        HRESULT _stdcall Parent([out, retval] IDispatch** ppParent);
        [id(0x00000006), propget, helpstring("Gets the line number of the bottom of the selection.")]
        HRESULT _stdcall BottomLine([out, retval] long* plLine);
        [id(0x00000007), propget, helpstring("Gets the line number of the top of the selection.")]
        HRESULT _stdcall TopLine([out, retval] long* plLine);
        [id(0x00000008), helpstring("Performs the function of the Delete key.")]
        HRESULT _stdcall Delete([in, optional] VARIANT Count);
        [id(0x00000009), helpstring("Selects the current line.")]
        HRESULT _stdcall SelectLine();
        [id(0x0000000a), helpstring("Performs the function of the Backspace key.")]
        HRESULT _stdcall Backspace([in, optional] VARIANT Count);
        [id(0x0000000b), helpstring("Moves the insertion point to the beginning of the document.")]
        HRESULT _stdcall StartOfDocument([in, optional] VARIANT Extend);
        [id(0x0000000c), helpstring("Copies the selected text to the Clipboard.")]
        HRESULT _stdcall Copy();
        [id(0x0000000d), helpstring("Removes the selected text and adds it to the Clipboard.")]
        HRESULT _stdcall Cut();
        [id(0x0000000e), helpstring("Replaces a selection with the contents of the Clipboard.")]
        HRESULT _stdcall Paste();
        [id(0x0000000f), helpstring("Moves the insertion point to the end of the document.")]
        HRESULT _stdcall EndOfDocument([in, optional] VARIANT Extend);
        [id(0x00000010), helpstring("Extends a selection to include the entire document.")]
        HRESULT _stdcall SelectAll();
        [id(0x00000011), helpstring("Converts spaces to tabs in a selection.")]
        HRESULT _stdcall Tabify();
        [id(0x00000012), helpstring("Converts tabs to spaces in a selection.")]
        HRESULT _stdcall Untabify();
        [id(0x00000013), helpstring("Indents the selected text.")]
        HRESULT _stdcall Indent([in, optional] VARIANT Count);
        [id(0x00000014), helpstring("Removes one indentation from all lines in a selection.")]
        HRESULT _stdcall Unindent([in, optional] VARIANT Count);
        [id(0x00000015), helpstring("Moves the insertion point one character to the left.")]
        HRESULT _stdcall CharLeft(
                        [in, optional] VARIANT Extend, 
                        [in, optional] VARIANT Count);
        [id(0x00000016), helpstring("Moves the insertion point one character to the right.")]
        HRESULT _stdcall CharRight(
                        [in, optional] VARIANT Extend, 
                        [in, optional] VARIANT Count);
        [id(0x00000017), helpstring("Moves the insertion point up one line.")]
        HRESULT _stdcall LineUp(
                        [in, optional] VARIANT Extend, 
                        [in, optional] VARIANT Count);
        [id(0x00000018), helpstring("Moves the insertion point down one line.")]
        HRESULT _stdcall LineDown(
                        [in, optional] VARIANT Extend, 
                        [in, optional] VARIANT Count);
        [id(0x00000019), helpstring("Moves the insertion point up one page.")]
        HRESULT _stdcall PageUp(
                        [in, optional] VARIANT Extend, 
                        [in, optional] VARIANT Count);
        [id(0x0000001a), helpstring("Moves the insertion point down one page.")]
        HRESULT _stdcall PageDown(
                        [in, optional] VARIANT Extend, 
                        [in, optional] VARIANT Count);
        [id(0x0000001b), helpstring("Moves the insertion point one word to the left.")]
        HRESULT _stdcall WordLeft(
                        [in, optional] VARIANT Extend, 
                        [in, optional] VARIANT Count);
        [id(0x0000001c), helpstring("Moves the insertion point one word to the right.")]
        HRESULT _stdcall WordRight(
                        [in, optional] VARIANT Extend, 
                        [in, optional] VARIANT Count);
        [id(0x0000001d), helpstring("Moves the insertion point to the end of a line.")]
        HRESULT _stdcall EndOfLine([in, optional] VARIANT Extend);
        [id(0x0000001e), helpstring("Moves the insertion point to the first character or first column of a line.")]
        HRESULT _stdcall StartOfLine(
                        [in, optional] VARIANT MoveTo, 
                        [in, optional] VARIANT Extend);
        [id(0x0000001f), helpstring("Formats text in a selection according to the current smart formatting settings.")]
        HRESULT _stdcall SmartFormat();
        [id(0x00000020), helpstring("Changes the case of a text selection.")]
        HRESULT _stdcall ChangeCase([in] DsCaseOptions Type);
        [id(0x00000021), helpstring("Deletes white space adjacent to the insertion point.")]
        HRESULT _stdcall DeleteWhitespace([in, optional] VARIANT Direction);
        [id(0x00000022), helpstring("Cancels a selection.")]
        HRESULT _stdcall Cancel();
        [id(0x00000023), helpstring("Moves the selection to a specified line in a document.")]
        HRESULT _stdcall GoToLine(
                        [in] long Line, 
                        [in, optional] VARIANT Select);
        [id(0x00000024), helpstring("Moves the insertion point to a specified line and column.")]
        HRESULT _stdcall MoveTo(
                        [in] long Line, 
                        [in] long Column, 
                        [in, optional] VARIANT Extend);
        [id(0x00000025), helpstring("Finds the next occurrence of the provided text.")]
        HRESULT _stdcall FindText(
                        [in] BSTR FindString, 
                        [in, optional] VARIANT Flags, 
                        [out, retval] VARIANT_BOOL* pbRet);
        [id(0x00000026), helpstring("Moves the selection to the previous unnamed bookmark in a document.")]
        HRESULT _stdcall PreviousBookmark([out, retval] VARIANT_BOOL* pbRet);
        [id(0x00000027), helpstring("Moves the selection to the next unnamed bookmark in a document.")]
        HRESULT _stdcall NextBookmark([out, retval] VARIANT_BOOL* pbRet);
        [id(0x00000028), helpstring("Sets an unnamed bookmark at the active end of a selection.")]
        HRESULT _stdcall SetBookmark();
        [id(0x00000029), helpstring("Removes all unnamed bookmarks in a document.")]
        HRESULT _stdcall ClearBookmark([out, retval] VARIANT_BOOL* pbRet);
        [id(0x0000002a), helpstring("Creates a new line in a selection.")]
        HRESULT _stdcall NewLine([in, optional] VARIANT Reserved);
        [id(0x0000002b), helpstring("Replaces all instances of one string with another.")]
        HRESULT _stdcall ReplaceText(
                        [in] BSTR szFind, 
                        [in] BSTR szReplace, 
                        [in, optional] VARIANT Flags, 
                        [out, retval] VARIANT_BOOL* pbRet);
        [id(0x0000002c), helpstring("Replaces all instances of one string with another.")]
        HRESULT _stdcall DestructiveInsert([in] BSTR szText);
    };

    [
      odl,
      uuid(08541520-83D3-11CF-AB59-00AA00C091A1),
      helpstring("Represents a text editor window."),
      hidden,
      dual,
      oleautomation
    ]
    interface ITextWindow : IGenericWindow {
        [id(0x00000014), propget, helpstring("Returns the Developer Studio Application object")]
        HRESULT _stdcall Selection([out, retval] IDispatch** ppDispatch);
    };

    [
      uuid(87D4D2A0-8250-11CF-AB59-00AA00C091A1),
      helpstring("Represents an open text file."),
      hidden
    ]
    dispinterface IDispTextDocument {
        properties:
            [id(00000000), helpstring("Returns the name of the document.")            
]
            BSTR Name;
            [id(0x00000001), helpstring("Returns the name of the document including the path.")            
]
            BSTR FullName;
            [id(0x00000002), helpstring("Returns the Developer Studio Application object")            
]
            IDispatch* Application;
            [id(0x00000003), helpstring("Returns the Developer Studio Application object")            
]
            IDispatch* Parent;
            [id(0x00000004), helpstring("Returns the pathname of the document. Never has a trailing backslash.")            
]
            BSTR Path;
            [id(0x00000005), helpstring("Returns False if document has changed since it was last saved.")            
]
            VARIANT_BOOL Saved;
            [id(0x00000006), helpstring("Returns the active window for this document.")            
]
            IDispatch* ActiveWindow;
            [id(0x00000007), helpstring("Returns/sets whether a document can be changed inside Developer Studio.")            
]
            VARIANT_BOOL ReadOnly;
            [id(0x00000008), helpstring("Returns a string describing the type of the document. Most documents return 'Generic'.")            
]
            BSTR Type;
            [id(0x00000009), helpstring("Returns a Windows collection containing the windows associated with this document.")            
]
            IDispatch* Windows;
            [id(0x00000064), helpstring("Gets the TextSelection object for the active view.")            
]
            IDispatch* Selection;
            [id(0x00000065), helpstring("Gets or sets the number of columns in one indent.")            
]
            long IndentSize;
            [id(0x00000066), helpstring("Gets or sets the number of columns in a tab character.")            
]
            long TabSize;
            [id(0x00000067), helpstring("Gets or sets the programming language assumed for a document.")            
]
            BSTR Language;
            [id(0x0000000a), helpstring("Activates the first window associated with a document.")            
]
            VARIANT_BOOL Active;
        methods:
            [id(0x0000000b), helpstring("Creates a new window for this document.")]
            IDispatch* NewWindow();
            [id(0x0000000c), helpstring("Saves the document to disk.")]
            DsSaveStatus Save(
                            [optional] VARIANT vFilename, 
                            [optional] VARIANT vSaveChanges);
            [id(0x0000000d), helpstring("Reverses previous editing actions. Has no effect on 'Generic' documents.")]
            VARIANT_BOOL Undo();
            [id(0x0000000e), helpstring("Reapplies previous editing actions. Has no effect on 'Generic' documents.")]
            VARIANT_BOOL Redo();
            [id(0x0000000f), helpstring("Sends the document to the current printer. Has no effect on 'Generic' documents.")]
            VARIANT_BOOL PrintOut();
            [id(0x00000010), helpstring("Closes the document.")]
            DsSaveStatus Close([optional] VARIANT vSaveChanges);
            [id(0x0000006e), helpstring("Replaces all instances of one string or regular expression with another.")]
            VARIANT_BOOL ReplaceText(
                            BSTR FindText, 
                            BSTR ReplaceText, 
                            [optional] VARIANT Flags);
            [id(0x0000006f), helpstring("Removes all unnamed bookmarks in a document.")]
            void ClearBookmarks();
            [id(0x00000070), helpstring("Marks lines containing the specified text.")]
            VARIANT_BOOL MarkText(
                            BSTR FindText, 
                            [optional] VARIANT Flags);
    };

    [
      uuid(87D4D2A1-8250-11CF-AB59-00AA00C091A1)
    ]
    coclass TextDocument {
        dispinterface IDispTextDocument;
        [default] interface ITextDocument;
    };

    [
      uuid(4D1F3146-833C-11CF-AB59-00AA00C091A1),
      helpstring("Represents a selection in a text editor window."),
      hidden
    ]
    dispinterface IDispTextSelection {
        properties:
            [id(00000000), helpstring("Represents the currently selected text.")            
]
            BSTR Text;
            [id(0x00000002), helpstring("Returns the Developer Studio Application object")            
]
            IDispatch* Application;
            [id(0x00000003), helpstring("Gets the line where the insertion point is located.")            
]
            long CurrentLine;
            [id(0x00000004), helpstring("Gets the column where the insertion point is located.")            
]
            long CurrentColumn;
            [id(0x00000005), helpstring("Gets the document object for this selection.")            
]
            IDispatch* Parent;
            [id(0x00000006), helpstring("Gets the line number of the bottom of the selection.")            
]
            long BottomLine;
            [id(0x00000007), helpstring("Gets the line number of the top of the selection.")            
]
            long TopLine;
        methods:
            [id(0x00000008), helpstring("Performs the function of the Delete key.")]
            void Delete([optional] VARIANT Count);
            [id(0x00000009), helpstring("Selects the current line.")]
            void SelectLine();
            [id(0x0000000a), helpstring("Performs the function of the Backspace key.")]
            void Backspace([optional] VARIANT Count);
            [id(0x0000000b), helpstring("Moves the insertion point to the beginning of the document.")]
            void StartOfDocument([optional] VARIANT Extend);
            [id(0x0000000c), helpstring("Copies the selected text to the Clipboard.")]
            void Copy();
            [id(0x0000000d), helpstring("Removes the selected text and adds it to the Clipboard.")]
            void Cut();
            [id(0x0000000e), helpstring("Replaces a selection with the contents of the Clipboard.")]
            void Paste();
            [id(0x0000000f), helpstring("Moves the insertion point to the end of the document.")]
            void EndOfDocument([optional] VARIANT Extend);
            [id(0x00000010), helpstring("Extends a selection to include the entire document.")]
            void SelectAll();
            [id(0x00000011), helpstring("Converts spaces to tabs in a selection.")]
            void Tabify();
            [id(0x00000012), helpstring("Converts tabs to spaces in a selection.")]
            void Untabify();
            [id(0x00000013), helpstring("Indents the selected text.")]
            void Indent([optional] VARIANT Reserved);
            [id(0x00000014), helpstring("Removes one indentation from all lines in a selection.")]
            void Unindent([optional] VARIANT Reserved);
            [id(0x00000015), helpstring("Moves the insertion point one character to the left.")]
            void CharLeft(
                            [optional] VARIANT Extend, 
                            [optional] VARIANT Count);
            [id(0x00000016), helpstring("Moves the insertion point one character to the right.")]
            void CharRight(
                            [optional] VARIANT Extend, 
                            [optional] VARIANT Count);
            [id(0x00000017), helpstring("Moves the insertion point up one line.")]
            void LineUp(
                            [optional] VARIANT Extend, 
                            [optional] VARIANT Count);
            [id(0x00000018), helpstring("Moves the insertion point down one line.")]
            void LineDown(
                            [optional] VARIANT Extend, 
                            [optional] VARIANT Count);
            [id(0x00000019), helpstring("Moves the insertion point up one page.")]
            void PageUp(
                            [optional] VARIANT Extend, 
                            [optional] VARIANT Count);
            [id(0x0000001a), helpstring("Moves the insertion point down one page.")]
            void PageDown(
                            [optional] VARIANT Extend, 
                            [optional] VARIANT Count);
            [id(0x0000001b), helpstring("Moves the insertion point one word to the left.")]
            void WordLeft(
                            [optional] VARIANT Extend, 
                            [optional] VARIANT Count);
            [id(0x0000001c), helpstring("Moves the insertion point one word to the right.")]
            void WordRight(
                            [optional] VARIANT Extend, 
                            [optional] VARIANT Count);
            [id(0x0000001d), helpstring("Moves the insertion point to the end of a line.")]
            void EndOfLine([optional] VARIANT Extend);
            [id(0x0000001e), helpstring("Moves the insertion point to the first character or first column of a line.")]
            void StartOfLine(
                            [optional] VARIANT MoveTo, 
                            [optional] VARIANT Extend);
            [id(0x0000001f), helpstring("Formats text in a selection according to the current smart formatting settings.")]
            void SmartFormat();
            [id(0x00000020), helpstring("Changes the case of a text selection.")]
            void ChangeCase(DsCaseOptions Type);
            [id(0x00000021), helpstring("Deletes white space adjacent to the insertion point.")]
            void DeleteWhitespace([optional] VARIANT Direction);
            [id(0x00000022), helpstring("Cancels a selection.")]
            void Cancel();
            [id(0x00000023), helpstring("Moves the selection to a specified line in a document.")]
            void GoToLine(
                            long Line, 
                            [optional] VARIANT Select);
            [id(0x00000024), helpstring("Moves the insertion point to a specified line and column.")]
            void MoveTo(
                            long Line, 
                            long Column, 
                            [optional] VARIANT Extend);
            [id(0x00000025), helpstring("Finds the next occurrence of the provided text.")]
            VARIANT_BOOL FindText(
                            BSTR FindString, 
                            [optional] VARIANT Flags);
            [id(0x00000026), helpstring("Moves the selection to the previous unnamed bookmark in a document.")]
            VARIANT_BOOL PreviousBookmark();
            [id(0x00000027), helpstring("Moves the selection to the next unnamed bookmark in a document.")]
            VARIANT_BOOL NextBookmark();
            [id(0x00000028), helpstring("Sets an unnamed bookmark at the active end of a selection.")]
            void SetBookmark();
            [id(0x00000029), helpstring("Removes all unnamed bookmarks in a document.")]
            VARIANT_BOOL ClearBookmark();
            [id(0x0000002a), helpstring("Creates a new line in a selection.")]
            void NewLine([optional] VARIANT Count);
            [id(0x0000002b), helpstring("Replaces all instances of one string with another.")]
            VARIANT_BOOL ReplaceText(
                            BSTR szFind, 
                            BSTR szReplace, 
                            [optional] VARIANT Flags);
            [id(0x0000002c), helpstring("Replaces all instances of one string with another.")]
            void DestructiveInsert(BSTR szText);
    };

    [
      uuid(4D1F3147-833C-11CF-AB59-00AA00C091A1)
    ]
    coclass TextSelection {
        dispinterface IDispTextSelection;
        [default] interface ITextSelection;
    };

    [
      uuid(4D1F3148-833C-11CF-AB59-00AA00C091A1),
      helpstring("Represents a text editor window."),
      hidden
    ]
    dispinterface IDispTextWindow {
        properties:
            [id(00000000), helpstring("Returns the caption of a window.")            
]
            BSTR Caption;
            [id(0x00000001), readonly, helpstring("Returns a string describing the type of the window. Most windows return 'Generic'.")            
]
            BSTR Type;
            [id(0x00000002), helpstring("Returns/sets the active state of the window.")            
]
            VARIANT_BOOL Active;
            [id(0x00000003), helpstring("Returns/sets the coordinate for the left edge of the window.")            
]
            long Left;
            [id(0x00000004), helpstring("Returns/sets the coordinate for the top of the window.")            
]
            long Top;
            [id(0x00000005), helpstring("Returns/sets the height of the window.")            
]
            long Height;
            [id(0x00000006), helpstring("Returns/sets the width of the window.")            
]
            long Width;
            [id(0x00000007), readonly, helpstring("Returns the one-based ordinal of a window in the Windows collection.")            
]
            long Index;
            [id(0x00000008), readonly, helpstring("Returns the next window in the tab sequence.")            
]
            IDispatch* Next;
            [id(0x00000009), readonly, helpstring("Returns the previous window in the shift-tab sequence.")            
]
            IDispatch* Previous;
            [id(0x0000000a), helpstring("Returns the state of the window or maximize, minimize, or restore the window.")            
]
            DsWindowState WindowState;
            [id(0x0000000b), helpstring("Returns the Developer Studio Application object")            
]
            IDispatch* Application;
            [id(0x0000000c), helpstring("Gets the TextDocument object for the text window.")            
]
            IDispatch* Parent;
            [id(0x00000014), helpstring("Gets the TextSelection object for the text window.")            
]
            IDispatch* Selection;
        methods:
            [id(0x0000000d), helpstring("Close the window.")]
            DsSaveStatus Close([optional] VARIANT boolSaveChanges);
    };

    [
      uuid(4D1F3149-833C-11CF-AB59-00AA00C091A1)
    ]
    coclass TextWindow {
        dispinterface IDispTextWindow;
        [default] interface ITextWindow;
    };

    [
      odl,
      uuid(0DE5B3A0-A420-11CF-AB59-00AA00C091A1),
      helpstring("Represents the Developer Studio text editor."),
      hidden,
      dual,
      oleautomation
    ]
    interface ITextEditor : IDispatch {
        [id(0x00000001), propput, helpstring("Gets or sets the visibility of tabs and spaces in all open text documents.")]
        HRESULT _stdcall VisibleWhitespace([in] VARIANT_BOOL pbVisible);
        [id(0x00000001), propget, helpstring("Gets or sets the visibility of tabs and spaces in all open text documents.")]
        HRESULT _stdcall VisibleWhitespace([out, retval] VARIANT_BOOL* pbVisible);
        [id(0x00000002), propput, helpstring("Gets or sets the emulation mode of the Developer Studio text editor.")]
        HRESULT _stdcall Emulation([in] long plEmulation);
        [id(0x00000002), propget, helpstring("Gets or sets the emulation mode of the Developer Studio text editor.")]
        HRESULT _stdcall Emulation([out, retval] long* plEmulation);
        [id(0x00000003), propget, helpstring("Returns the Developer Studio Application object")]
        HRESULT _stdcall Application([out, retval] IDispatch** ppDispatch);
        [id(0x00000004), propget, helpstring("Returns the Developer Studio Application object")]
        HRESULT _stdcall Parent([out, retval] IDispatch** ppDispatch);
        [id(0x00000005), propput, helpstring("Gets or sets whether the editor is in overtype mode.")]
        HRESULT _stdcall Overtype([in] VARIANT_BOOL pbOvertype);
        [id(0x00000005), propget, helpstring("Gets or sets whether the editor is in overtype mode.")]
        HRESULT _stdcall Overtype([out, retval] VARIANT_BOOL* pbOvertype);
    };

    [
      uuid(426524E0-A41F-11CF-AB59-00AA00C091A1),
      helpstring("Represents the Developer Studio text editor."),
      hidden
    ]
    dispinterface IDispTextEditor {
        properties:
            [id(0x00000001), helpstring("Gets or sets the visibility of tabs and spaces in all open text documents.")            
]
            VARIANT_BOOL VisibleWhitespace;
            [id(0x00000002), helpstring("Gets or sets the emulation mode of the Developer Studio text editor.")            
]
            long Emulation;
            [id(0x00000003), helpstring("Returns the Developer Studio Application object")            
]
            IDispatch* Application;
            [id(0x00000004), helpstring("Returns the Developer Studio Application object")            
]
            IDispatch* Parent;
            [id(0x00000005), helpstring("Gets or sets whether the editor is in overtype mode.")            
]
            VARIANT_BOOL Overtype;
        methods:
    };

    [
      uuid(426524E1-A41F-11CF-AB59-00AA00C091A1)
    ]
    coclass TextEditor {
        dispinterface IDispTextEditor;
        [default] interface ITextEditor;
    };
};
